package br.uniriotec.pssgbd.unterhaltung.model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.uniriotec.pssgbd.unterhaltung.model.entidade.relacionadaEstabelecimento.Bairro;

public class BairroDAO extends GenericDAO{
private static String sqlSelect = "SELECT cod_bairro, cod_cidade, nome_bairro FROM bairro";
	
	public Bairro obterBairro(String sqlWhere, int codBairro) throws SQLException, ClassNotFoundException{
		this.criaConexao(false);
		
		String sqlCompleta = sqlSelect + sqlWhere;
		
		PreparedStatement stmt = null;
		ResultSet rs = null;
		Bairro bairro = null;
		
		try{
			stmt = getConnection().prepareStatement(sqlCompleta);
			stmt.setInt(1, codBairro);
			rs = stmt.executeQuery();
			if (rs.next()){
				bairro = new Bairro();
				bairro.setCodBairro(rs.getInt("cod_bairro"));
				bairro.setNome(rs.getString("nome_bairro"));
			}
			
		}
		
		catch(SQLException e){
			throw e;
		}
		
		finally{
			try{
				stmt.close();
				rs.close();
				this.fechaConexao();
			} 
			catch (SQLException e) {
				throw e;
			}
		}
		
		return bairro;
	}

	public List<Bairro> obterBairro() throws SQLException, ClassNotFoundException{
		this.criaConexao(false);
		
		PreparedStatement stmt = null;
		ResultSet rs = null;
		Bairro bairro = null;
		List<Bairro> listaBairro = new ArrayList<Bairro>();
		
		try{
			stmt = getConnection().prepareStatement(sqlSelect);
			rs = stmt.executeQuery();
			while (rs.next()){
				bairro = new Bairro();
				bairro.setCodBairro(rs.getInt("cod_bairro"));
				bairro.setNome(rs.getString("nome_bairro"));
				listaBairro.add(bairro);
			}
			
		}
		
		catch(SQLException e){
			throw e;
		}
		
		finally{
			try{
				stmt.close();
				rs.close();
				this.fechaConexao();
			} 
			catch (SQLException e) {
				throw e;
			}
		}
		
		return listaBairro;
	}
	
	/**
	 * @return the sqlSelect
	 */
 	public String getSqlSelect() {
		return sqlSelect;
	}
}
